﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO_MechSys;
using System.Data.SqlClient;
namespace DAL_MechSys
{
    public class DALDevolucao : DALBase
    {
        public void Inserir(DTODevolucao dtoDevolucao)
        {
            try
            {
                string storedProssidere = "sp_InserirDevolucao";

                SqlParameter[] parameters =
                
                { 
                   new SqlParameter("@produtoID", dtoDevolucao.ProdutoID),
                   new SqlParameter("@orderID", dtoDevolucao.OrderID),
                   new SqlParameter("@quantidade", dtoDevolucao.Quantidade),
                   new SqlParameter("@funcionarioID", dtoDevolucao.FuncionarioID),
                   new SqlParameter("@justificativa", dtoDevolucao.Justificativa),
                   new SqlParameter("@valor", dtoDevolucao.Valor),

                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public List<DTODevolucao> Listar()
        {
            List<DTODevolucao> lstDevolucao = new List<DTODevolucao>();

            try
            {
                string storedProssidere = "sp_BuscarDevolucao";
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere))
                {
                    while (sqlDataReader.Read())
                    {

                        DTODevolucao dtoDevolucao = CriarDevolucao(sqlDataReader);

                        lstDevolucao.Add(dtoDevolucao);

                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return lstDevolucao;
        }

        private DTODevolucao CriarDevolucao(SqlDataReader sqlDataReader)
        {
            try
            {
                DTODevolucao dtoDevolucao = new DTODevolucao();

                if (!string.IsNullOrEmpty(sqlDataReader["Valor"].ToString()))
                {
                    dtoDevolucao.Valor = double.Parse(sqlDataReader["Valor"].ToString());
                }
                if (!string.IsNullOrEmpty(sqlDataReader["DevolucaoID"].ToString()))
                {
                    dtoDevolucao.DevolucaoID = (int)sqlDataReader["DevolucaoID"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["FuncionarioID"].ToString()))
                {
                    dtoDevolucao.FuncionarioID = (int)sqlDataReader["FuncionarioID"];
                }


                if (!string.IsNullOrEmpty(sqlDataReader["OrdemID"].ToString()))
                {
                    dtoDevolucao.OrderID = (int)sqlDataReader["OrdemId"];
                }


                if (!string.IsNullOrEmpty(sqlDataReader["Quantidade"].ToString()))
                {
                    dtoDevolucao.Quantidade = Int32.Parse(sqlDataReader["Quantidade"].ToString());
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Justificativa"].ToString()))
                {
                    dtoDevolucao.Justificativa = (sqlDataReader["Justificativa"].ToString());

                }

                if (!string.IsNullOrEmpty(sqlDataReader["ProdutoID"].ToString()))
                {
                    dtoDevolucao.ProdutoID = Int32.Parse(sqlDataReader["ProdutoID"].ToString());
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Data"].ToString()))
                {
                    dtoDevolucao.Data = DateTime.Parse(sqlDataReader["Data"].ToString());
                }

                return dtoDevolucao;
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
